<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of form_acts_controller
 *
 * @author fredy
 */
class FormActsController extends AppController {

    //put your code here
    var $name = "FormActs";

    function index() {
        $this->layout = "ajax";
        $proyect_id = $this->Session->read('proy_id');
        if ($proyect_id != "") {
            $this->set('formActs', $this->FormAct->find("all", array('conditions' => array('FormAct.proyect_id' => $proyect_id), 'order' => array('FormAct.id DESC'))));
            $this->set('proyect_id', $proyect_id);
        } else {
            $this->Session->setFlash('No se ha seleccionado proyecto', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        }
    }

    function add($proyect_id) {
        $this->layout = "ajax";
        $this->set('proyect_id', $proyect_id);

        if (!empty($this->data)) {
            if ($this->FormAct->save($this->data)) {
                $this->Session->setFlash(_("Acta creada con Ã©xito"));
                $this->redirect(array('controller' => 'FormActs', 'action' => 'index'));
            }
        } else {
            $this->set('proyect_id', $proyect_id);
        }
    }

    function edit($id) {
        $this->layout = "ajax";
        if (!empty($this->data)) {
            if ($this->FormAct->save($this->data)) {
                $this->Session->setFlash(_("Acta Editada con Ã©xito"));
                $this->redirect(array('controller' => 'FormActs', 'action' => 'index'));
            } else {
                $this->data = $this->FormAct->find('first', array('conditions' => array('FormAct.id' => $id)));
            }
        } else {
            $this->data = $this->FormAct->find('first', array('conditions' => array('FormAct.id' => $id)));
        }
    }

    //No se permite borrar actas para ningún usuario.
    function delete($id) {
        if ($this->FormAct->delete($id)) {
            $this->Session->setFlash(_("Acta borrada con Ã©xito"));
            $this->redirect(array('controller' => 'FormActs', 'action' => 'index'));
        }
    }

    function print_letter($id) {
        $this->layout = "ajax";
        $proyect_id = $this->Session->read('proy_id');

        App::Import('Model', 'Proyect');
        App::Import('Model', 'FinalEvaluation');
        App::Import('Model', 'User');
        App::Import('Model', 'Proposer');
        App::Import('Model', 'FinalProductiveLine');
        App::Import('Model', 'Candidates');
        App::Import('Model', 'Property');
        App::Import('Model', 'ProyectDocument');
        App::Import('Model', 'Counterpart');
        App::Import('Model', 'EvaluationConstraint');
        App::Import('Model', 'FormActUser');
        App::Import('Model', 'EvaluationAppraisal');
        App::Import('Model', 'TopographicMap');

        $avaluo = new EvaluationAppraisal();
        $avaluo->recursive = -1;
        $plano = new TopographicMap();
        $plano->recursive = -1;
        $proyect = new Proyect();
        $proyect->recursive = -1;
        $codigo = $proyect->field('codigo', array('Proyect.id' => $proyect_id));
        $final_evaluation = new FinalEvaluation();
        $final_evaluation->recursive = -1;
        $usuario = new User();
        $usuario->recursive = -1;
        $proposer = new Proposer();
        $proposer->recursive = -1;
        $finalProductiveLines = new FinalProductiveLine();
        $finalProductiveLines->recursive = 1;
        $familias = new Candidate();
        $familias->recursive = -1;
        $properties = new Property();
        $properties->recursive = 1;
        $convocatoria = new Call();
        $convocatoria->recursive = -1;
        $contrapartida = new Counterpart();
        $contrapartida->recursive = -1;
        $condicionamiento = new EvaluationConstraint();
        $condicionamiento->recursive = -1;
        $formActUsers = new FormActUser();
        $formActUsers->recursive = 1;


        $this->set('proyect_id', $proyect_id);
        $this->set('codigo_proyect', $codigo);

        $acta = $this->FormAct->find('first', array('conditions' => array('FormAct.id' => $id)));
        $ultima_evaluacion_final = $final_evaluation->find('first', array('conditions' => array('FinalEvaluation.proyect_id' => $proyect_id), 'fields' => array('FinalEvaluation.id', 'FinalEvaluation.user_id', 'FinalEvaluation.nombre_proyecto',
                'FinalEvaluation.calificacion_anexos', 'FinalEvaluation.concepto_anexos', 'FinalEvaluation.calificacion_ubicacion', 'FinalEvaluation.concepto_ubicacion', 'FinalEvaluation.calificacion_area_util', 'FinalEvaluation.magnitud_area_util', 'FinalEvaluation.concepto_area_util',
                'FinalEvaluation.calificacion_suelos', 'FinalEvaluation.concepto_suelos', 'FinalEvaluation.calificacion_claseV', 'FinalEvaluation.concepto_claseV', 'FinalEvaluation.calificacion_mejoras_santuarias', 'FinalEvaluation.concepto_mejoras_santuarias',
                'FinalEvaluation.tir', 'FinalEvaluation.familias_habilitadas', 'FinalEvaluation.excedentes', 'FinalEvaluation.subsidio_predios_real', 'FinalEvaluation.subsidio_proyecto_real',
                'FinalEvaluation.calificacion_aspectos_productivos', 'FinalEvaluation.calificacion_aspectos_sociales', 'FinalEvaluation.calificacion_aspectos_financieros', 'FinalEvaluation.tipo_proyecto', 'FinalEvaluation.calificacion_aspectos_ambientales',
                'FinalEvaluation.calificacion_ubicacion', 'FinalEvaluation.concepto_ubicacion', 'FinalEvaluation.calificacion_suelos_total', 'FinalEvaluation.concepto_elegibilidad_integral', 'FinalEvaluation.calificacion_elegibilidad_integral'), 'order' => array('FinalEvaluation.id' => "DESC")));

        $evaluador = $usuario->find('first', array('conditions' => array('User.id' => $ultima_evaluacion_final['FinalEvaluation']['user_id']), 'fields' => array('User.nombre', 'User.primer_apellido', 'User.segundo_apellido')));

        $proponente = $proposer->find('first', array('conditions' => array('Proposer.proyect_id' => $proyect_id), 'fields' => array('Proposer.nombre')));

        $lineas_productivas = $finalProductiveLines->find('all', array('conditions' => array('FinalProductiveLine.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id']), 'fields' => array('FinalProductiveLine.area', 'FinalProductiveLine.observacion', 'ProductiveActivity.nombre')));

        //cantidad de familias que tenia el proyecto inicialmente.

        $familias_iniciales_principales = $familias->find('count', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.clase' => '1')));
        $familias_iniciales_suplentes = $familias->find('count', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.clase <>' => '1')));
        $familias_habilitadas_principales = $familias->find('count', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.clase' => '1', 'Candidate.estado_filtro' => array('1', '5'))));
        $familias_habilitadas_suplentes = $familias->find('count', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.clase <>' => '1', 'Candidate.estado_filtro' => array('1', '5'))));

        //busco los datos de los predios

        $predios = $properties->find('all', array('conditions' => array('Property.proyect_id' => $proyect_id), 'fields' => array('Property.valor_negociacion', 'Property.id', 'Property.nombre', 'City.departament_id', 'City.name', 'Property.matricula', 'Property.area_titulo')));

        $revision_avaluos = "Revisado";
        $revision_planos = "Revisado";

        foreach ($predios as $predio) {

            //busco el ultimo avaluo de cada predio
            $avaluo1 = $avaluo->find('first', array('conditions' => array('EvaluationAppraisal.property_id' => $predio['Property']['id']), 'fields' => array('EvaluationAppraisal.calificacion'), 'order' => array('EvaluationAppraisal.id' => 'DESC')));
            //busco el ultimo plano de cada predio
            $plano1 = $plano->find('first', array('conditions' => array('TopographicMap.property_id' => $predio['Property']['id']), 'fields' => array('TopographicMap.calificacion'), 'order' => array('TopographicMap.id' => 'DESC')));

            if ($avaluo1['EvaluationAppraisal']['calificacion'] != 1 and $revision_avaluos == 'Revisado') {
                $revision_avaluos = "No revisado";
            }

            if ($plano1['TopographicMap']['calificacion'] != 1 and $revision_planos == "Revisado") {
                $revision_planos = "No revisado";
            }
        }

        //busco el salario minimo de la convocatoria

        $salarioMinimo = $convocatoria->field('valor_smmv', array('Call.id' => 1));


        //se envian datos de la contrapartida
        $this->set("contapartidas_certificadas_predio", $contrapartida->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));
        $this->set("contapartidas_otra_predio", $contrapartida->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));
        $this->set("contapartidas_certificadas_proyecto", $contrapartida->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));
        $this->set("contapartidas_otra_proyecto", $contrapartida->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));

        $condicionadoCabidaFamiliar = $condicionamiento->find('count', array('conditions' => array('EvaluationConstraint.constraint_id' => '6', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));
        $condicionadoArea = $condicionamiento->find('count', array('conditions' => array('EvaluationConstraint.constraint_id' => '4', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));
        $condicionadoNegociacion = $condicionamiento->find('count', array('conditions' => array('EvaluationConstraint.constraint_id' => '5', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id'])));

        $textoCondicionamientoFamiliar = $condicionamiento->field('EvaluationConstraint.descripcion', array('EvaluationConstraint.constraint_id' => '6', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id']), 'EvaluationConstraint.id DESC');
        $textoCondicionamientoArea = $condicionamiento->field('EvaluationConstraint.descripcion', array('EvaluationConstraint.constraint_id' => '4', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id']), 'EvaluationConstraint.id DESC');
        $textoCondicionamientoNegociacion = $condicionamiento->field('EvaluationConstraint.descripcion', array('EvaluationConstraint.constraint_id' => '5', 'EvaluationConstraint.final_evaluation_id' => $ultima_evaluacion_final['FinalEvaluation']['id']), 'EvaluationConstraint.id DESC');

        //participantes

        $participantes = $formActUsers->find("all", array(
            'conditions' => array('FormActUser.form_act_id' => $id),
            'fields' => array('FormActUser.id', 'FormActUser.rol', 'FormActUser.user_id', 'User.nombre', 'User.primer_apellido', 'User.segundo_apellido'),
            'order' => array('FormActUser.rol ASC')));


        //envio datos a vista
        $this->set('acta', $acta);
        $this->set('ultima_evaluacion_final', $ultima_evaluacion_final);
        $this->set('evaluador', $evaluador);
        $this->set('proponente', $proponente);
        $this->set('lineas_productivas', $lineas_productivas);
        $this->set('familias_iniciales_principales', $familias_iniciales_principales);
        $this->set('familias_iniciales_suplentes', $familias_iniciales_suplentes);
        $this->set('familias_habilitadas_principales', $familias_habilitadas_principales);
        $this->set('familias_habilitadas_suplentes', $familias_habilitadas_suplentes);
        $this->set('predios', $predios);
        $this->set('salarioMinimo', $salarioMinimo);
        $this->set('condicionadoCabidaFamiliar', $condicionadoCabidaFamiliar);
        $this->set('condicionadoArea', $condicionadoArea);
        $this->set('condicionadoNegociacion', $condicionadoNegociacion);
        $this->set('textoCondicionamientoFamiliar', $textoCondicionamientoFamiliar);
        $this->set('textoCondicionamientoArea', $textoCondicionamientoArea);
        $this->set('textoCondicionamientoNegociacion', $textoCondicionamientoNegociacion);
        $this->set('participantes', $participantes);
        $this->set('revision_avaluos', $revision_avaluos);
        $this->set('revision_planos', $revision_planos);
    }

}

?>